// axios二次封装
import axios from "axios"
import {Toast} from "vant"
import $router from "../router/index"

let servion = axios.create({
    baseURL: process.env.VUE_APP_BASE_API,
    // 设置过期时间
    timeout: 10*1000,
})

// 设置请求拦截器
servion.interceptors.request.use(
    (config) => {
        config.headers['Authorization'] = 'Bearer' + ' ';
        // + localStorage.getItem('token')
        Toast.loading({ message: "加载中...", duration: 0 })
        return config
    }, (error) => {
        // 请求发出前，发生错误的回调函数
        return Promise.reject(error)
    }
)

// 设置响应拦截器
servion.interceptors.response.use(
    (res) => {
        Toast.clear()
        return res
    }, (error) => {
        Toast.clear()
        if (error.response.status == 401) {
            Toast.fail('身份过期，请重新登录！');

            // 身份过期则清除携带的token
            localStorage.removeItem('token')
            // 跳转到登录页
            $router.push('../components/LoGinb.vue')
        } else if (error.response.status == 404) {
            Toast.fail('访问路径错误')

        } else if (error.response.status == 500) {

            Toast.fail('服务器内部错误，请联系管理员处理')
        }
        return Promise.reject(error)
    })
export default servion